package day_2022_4_to_7.nowcoder;

/**
 * 替换空格
 * @author haomin
 * @date 2022/04/09 16:29
 **/
public class ReplaceSpaces_2f {
    // 方法二：
    public static String replaceSpace(StringBuffer str) {
        // 找出空格数
        int count = 0;
        for (int i = 0; i < str.length(); i++) {
            if(str.charAt(i) == ' '){
                count++;
            }
        }

        int old_end = str.length() - 1;
        // 设置新字符串长度
        str.setLength(str.length() + count*2);
        int new_end = str.length() - 1;

        while (old_end >= 0 && new_end >= 0){
            // 填数
            if(str.charAt(old_end) == ' '){
                str.setCharAt(new_end--, '0');
                str.setCharAt(new_end--, '2');
                str.setCharAt(new_end--, '%');
                old_end--;
            }else {
                // 不为空 则平移
                str.setCharAt(new_end--,str.charAt(old_end));
                old_end--;
            }
        }
        return str.toString();
    }


    // 方法一：
    public static String replaceSpace1(StringBuffer str) {
        String s = str.toString();
        String ret = "";
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if(c == ' '){
                ret +="%20";
            }else {
                ret += c;
            }
        }
        return ret;
    }

    public static void main(String[] args) {
        StringBuffer str = new StringBuffer();
        str.append("We Are Happy.");
        System.out.println(replaceSpace1(str).toString());
        System.out.println(replaceSpace(str).toString());
    }
}